Many different types of computing systems utilize polling to retrieve updated data values from a data source. In this context, polling refers to a process of repeatedly requesting data from a data source in order to obtain updated values. When utilizing polling in this manner, it can be difficult to determine an optimal frequency at which data should be requested. Frequent polling may allow updated values to be obtained from a data source very close to the time at which the values change. But, if the polling operation is computationally expensive in some way (e.g. processor, memory or network bandwidth cost), then it may be desirable to poll less frequently. A lower polling frequency might, however, result in outdated (“stale”) data being presented to a user or utilized in some other manner.
On-demand polling may be utilized to address at least some of the problems described above. Utilizing on-demand polling, a request is not made to a data source for an updated data value until an actual request is received for the data. On-demand polling, however, suffers from the problem that a sudden acceleration in demand for the data might result in the performance of a large number of simultaneous polling operations. Such a large number of polling operations might render the computer systems that supply the requested data incapable of responding.
Another mechanism utilized to obtain updated data from a data source involves registering for a “callback” from a data source when data of interest changes. Polling for updated values can be avoided completely using such a callback mechanism. There are many scenarios, however, where callbacks are unavailable for use in obtaining updated data values. It is with respect to these and other considerations that the disclosure made herein is presented.